﻿using CodeFirst导航属性的使用示例.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System;

namespace CodeFirst导航属性的使用示例.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        public ValuesController(MyContext db)
        {
            Db = db;
        }

        public MyContext Db { get; }

        [HttpGet]
        public void GetProduct()
        {
            using (var context = Db)
            {
                // 1. 查询所有商品（查询Products表，包含Category）
                Console.WriteLine("=== 第一步：查询商品 ===");
                var products = context.Products.Include(x=>x.Category).AsQueryable();
                // 急切加载此时已查询Categories表

                // 2. 访问导航属性时，
                Console.WriteLine("\n=== 第二步：访问Category导航属性 ===");
                foreach (var product in products)
                {
                    Console.WriteLine($"商品：{product.Name}，类别：{product.Category.Name}");
                }
            }
        }
    }
}
